package com.situ.cookie;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/lastAccessTime")
public class lastAccessTime extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		// ‘/lastAccessTime’回车，创建当前时间，，name：lastAccessTime，，存进cookie 给浏览器
		//  2.是模拟了服务器，假设是服务器取出来的，，，取出cookies（里面可能一堆cookie（name,value）），，cookies不为空，
				//遍历cookies  找name是lastAccessTime,,,把里面的值存到新的字符串对象里面去
		
		// 1. 存住 当前 (访问)时间  到  浏览器  cookie
		Date date = new Date();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd/hh:mm:ss");
		String time = simpleDateFormat.format(date);
		Cookie cookie = new Cookie("lastAccessTime", time);
		resp.addCookie(cookie);
		
		// 2. 获取 浏览器 cookie 里的  叫lastAccessTime的这个cookie
		Cookie[] cookies = req.getCookies();
		String lastAccessTime = ""; // 默认是空  ，，遍历cookies找到了就放进去，，，没有说明第一次访问
		if (cookies != null) { //说明拿到了  浏览器里的所有cookies
			for (Cookie coo : cookies) {
				// 可能有 很多 cookie-name,,,我们只要 cookie-name叫 lastAccessTime的这个
				if ("lastAccessTime".equals(coo.getName())) {
					lastAccessTime = coo.getValue();		// 就把他的值(上一次访问的时间)
				}
			}
		}
		
		// 3. 判断 lastAccessTime 有没有东西   ，，有(存的上次时间)打印，，，没有(什么没存  说明第一次访问)告诉用户第一次访问
		resp.setContentType("text/html;charset=utf-8"); //设置页面显示  中文  Utf-8
		PrintWriter writer = resp.getWriter();
		if ("".equals(lastAccessTime)) { //说明里面没有东西(没有上一次访问的时间，，就是第一次访问)
			writer.println("您是第一次访问。");
		}else {
			writer.println("您上次访问的时间是：" + lastAccessTime);
		}
		
	}// service
}
